1. Field
This application relates to the electronic rendering of images and movies in general and more specifically to the shading of translucent objects.
2. Related Art
Computer graphics are used in various fields, such as animation, computer games, etc. An important goal of computer graphics is the ability to generate virtual images that are realistic and/or esthetic. A major impediment to reaching this goal is the inherent computational limitations of existing computer systems.
More specifically, lighting continues to pose challenges in the field of computer graphics. Naturally, light is an important factor in how one perceives an image. An observer (e.g., a human eye or a camera) perceives an object by detecting light reflected from that object (in other cases the light may be passing (or transmitted) through the object or be refracted by the object instead). The light detected from an object may be classified in two types. Direct light is light that travels directly from a light source to the object and to the observer. Indirect light is light that does not travel directly from a light source to the object. For example, indirect light may be light that is reflected from another object before it reaches the object being observed. Alternatively, indirect light may be light that goes through a translucent object before reaching the object being observed.
In the real world, much of the light that we use to perceive the world around us is indirect light. Thus, we can usually see objects that are not directly exposed to a particular light source. For example, in a bright day, a room with a window is usually well-illuminated even if the sun does not directly shine through the window, because the sun's rays reflect from the surrounding scenery and pass through the window, thus illuminating the room.
Considering the above, a perfect computer graphics system would be able to track indirect light to ensure realistic illumination of objects. Unfortunately, for most situations, such a system would be impractical as it would require a very large amount of computing resources. In order to account for indirect light, one has to trace each light ray (or photon) from a light source and off of all objects from which it reflects (this is sometimes referred to as ray tracing). Considering the incredibly large number of light rays illuminating a scene, and the complex paths each light ray may take when being reflected of various objects in a scene, this is not practical.
For the above reasons, many current computer graphics systems are direct light systems. In other words, they usually only take into account light going directly from a light source to an observed object when calculating how that object should be displayed. While using a direct light system significantly reduces computational costs, these systems may, in certain situations, create images that are very unrealistic.
For example, direct light systems do not correctly render translucent objects, without further modifications. A translucent object is an object which allows light to pass through it and modifies the light as it passes through it. Thus, seeing a translucent object usually involves seeing at least some of the light that passes through the object. However, light that passes through an object is not considered direct light by the standard direct light models and is thus not rendered by systems employing these models. In other words, systems utilizing standard direct light models usually render translucent objects as being completely opaque. This is naturally undesirable.
Some direct light systems render translucent objects by performing some type of ray tracing for these objects. Thus, these direct light systems depart from the direct light model when rendering translucent objects, in order to correctly convey the translucency of these objects. This is done under the assumption that translucent objects are relatively rare, therefore the additional computational requirements for performing ray tracing for these objects would not be too high. However this method cannot be efficiently employed in scenes in which large numbers of translucent objects exist.
While the above discussion centers on the desirability of realism in computer graphics, it should be noted that in many cases realism need not be the over-riding goal of a computer graphics system. It is well accepted that an image created by a talented artist may be much more compelling than the real image the artist based his composition on. Many computer graphics systems are used to assist artists in creating images or video. Thus, while realism is always a desirable quality of a computer graphics system it is also often desirable that the system offer sufficient artistic control as to allow an artist to create compelling visuals even if these visuals are not strictly realistic.
What is needed is a scheme for rendering translucent objects that does not impose very high computational requirements, even if comparatively large numbers of translucent objects have to be rendered. Also needed is a system that renders translucent objects while providing an artist with sufficient artistic control.